package com.regex.web.entity.essentialinformation;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.regex.web.entity.StrIdBaseEntity;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
import java.util.Date;
import java.util.Date;
import java.util.Date;
import java.util.Date;
import java.util.Date;
import java.util.Date;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import com.regex.web.common.excel.annotation.ExcelField;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 残疾人信息表
 * </p>
 *
 * @author lyc
 * @since 2021-08-09
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cl_disabled_info")
public class ClDisabledInfoDTO extends StrIdBaseEntity implements Cloneable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
 /*   @TableId(value = "ID", type = IdType.AUTO)
    @ExcelField(title="主键",  align=2 , sort=1, dictType="")
    private Integer id;
*/
    /**
     * 残疾人姓名
     */
    @TableField("NAME")
    @ExcelField(title="残疾人姓名",  align=2 , sort=2, dictType="")
    private String name;

    /**
     * 性别(1：男；2：女)
     */
    @TableField("SEX")
    @ExcelField(title="性别(1：男；2：女)",  align=2 , sort=3, dictType="")
    private Integer sex;

    /**
     * 民族(1：汉族)
     */
    @TableField("NATION")
    @ExcelField(title="民族(1：汉族)",  align=2 , sort=4, dictType="")
    private Integer nation;

    /**
     * 出生日期	
     */
    @TableField("BIRTHDAY")
    @ExcelField(title="出生日期	",  align=2 , sort=5, dictType="")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;

    /**
     * 证件类型(1:身份证;2:户口本;3:护照;4:军官证;5:士兵证;6:警官证;7:回乡证;8:通行证)
     */
    @TableField("CERTIFICATE_TYPE")
    @ExcelField(title="证件类型(1:身份证;2:户口本;3:护照;4:军官证;5:士兵证;6:警官证;7:回乡证;8:通行证)",  align=2 , sort=6, dictType="")
    private Integer certificateType;

    /**
     * 证件号码
     */
    @TableField("CERTIFICATE_NO")
    @ExcelField(title="证件号码",  align=2 , sort=7, dictType="")
    private String certificateNo;

    /**
     * 残疾证号
     */
    @TableField("DISABLED_NO")
    @ExcelField(title="残疾证号",  align=2 , sort=8, dictType="")
    private String disabledNo;

    /**
     * 固定电话
     */
    @TableField("FIX_PHONE")
    @ExcelField(title="固定电话",  align=2 , sort=9, dictType="")
    private String fixPhone;

    /**
     * 残疾类型1:视力;2:听力;3:言语;4:肢体;5:智力;6:精神;7:多重)
     */
    @TableField("DISABLED_TYPE")
    @ExcelField(title="残疾类型1:视力;2:听力;3:言语;4:肢体;5:智力;6:精神;7:多重)",  align=2 , sort=10, dictType="")
    private Integer disabledType;

    /**
     * 残疾等级(1:一级;2:二级;3:三级;4:四级)
     */
    @TableField("DISABLED_GRADE")
    @ExcelField(title="残疾等级(1:一级;2:二级;3:三级;4:四级)",  align=2 , sort=11, dictType="")
    private Integer disabledGrade;

    /**
     * 残疾等级-肢体
     */
    @TableField("body_level")
    @ExcelField(title="残疾等级-肢体",  align=2 , sort=12, dictType="")
    private String bodyLevel;

    /**
     * 残疾等级-听力
     */
    @TableField("ear_level")
    @ExcelField(title="残疾等级-听力",  align=2 , sort=13, dictType="")
    private String earLevel;

    /**
     * 残疾等级-视力
     */
    @TableField("eye_level")
    @ExcelField(title="残疾等级-视力",  align=2 , sort=14, dictType="")
    private String eyeLevel;

    /**
     * 残疾等级-精神
     */
    @TableField("mental_level")
    @ExcelField(title="残疾等级-精神",  align=2 , sort=15, dictType="")
    private String mentalLevel;

    /**
     * 残疾等级-智力
     */
    @TableField("iq_level")
    @ExcelField(title="残疾等级-智力",  align=2 , sort=16, dictType="")
    private String iqLevel;

    /**
     * 残疾等级-言语
     */
    @TableField("speech_level")
    @ExcelField(title="残疾等级-言语",  align=2 , sort=17, dictType="")
    private String speechLevel;

    /**
     * 评残区县
     */
    @TableField("DISABILITY_RATING_AREA")
    @ExcelField(title="评残区县",  align=2 , sort=18, dictType="")
    private String disabilityRatingArea;

    /**
     * 领证区县
     */
    @TableField("GET_DISABLED_NO_AREA")
    @ExcelField(title="领证区县",  align=2 , sort=19, dictType="")
    private String getDisabledNoArea;

    /**
     * 联系电话
     */
    @TableField("PHONE")
    @ExcelField(title="联系电话",  align=2 , sort=20, dictType="")
    private String phone;

    /**
     * 监护人
     */
    @TableField("GUARDIAN")
    @ExcelField(title="监护人",  align=2 , sort=21, dictType="")
    private String guardian;

    /**
     * 监护人电话
     */
    @TableField("GUARDIAN_PHONE")
    @ExcelField(title="监护人电话",  align=2 , sort=22, dictType="")
    private String guardianPhone;

    /**
     * 与监护人关系（1：配偶；2：子；3：女；4：（外）孙（子/女）；5：父母；6：（外）祖父母；7：兄/弟/姐/妹；8：其他
     */
    @TableField("GUARDIANSHIP")
    @ExcelField(title="与监护人关系（1：配偶；2：子；3：女；4：（外）孙（子/女）；5：父母；6：（外）祖父母；7：兄/弟/姐/妹；8：其他",  align=2 , sort=23, dictType="")
    private Integer guardianship;

    /**
     * 客户类型(1:独居;2:双老;3:孤老;4:离休干部;5:军休干部;6:困难老人;7:伤残人;8:老师)
     */
    @TableField("CUSTOMER_TYPE")
    @ExcelField(title="客户类型(1:独居;2:双老;3:孤老;4:离休干部;5:军休干部;6:困难老人;7:伤残人;8:老师)",  align=2 , sort=24, dictType="")
    private Integer customerType;

    /**
     * 客户级别(1:普通；2:VIP)
     */
    @TableField("CUSTOMER_LEVEL")
    @ExcelField(title="客户级别(1:普通；2:VIP)",  align=2 , sort=25, dictType="")
    private Integer customerLevel;

    /**
     * 邮编
     */
    @TableField("POSTCODE")
    @ExcelField(title="邮编",  align=2 , sort=26, dictType="")
    private Integer postcode;

    /**
     * 监护人证件号码
     */
    @TableField("GUARDIAN_CERTIFICATE_NO")
    @ExcelField(title="监护人证件号码",  align=2 , sort=27, dictType="")
    private String guardianCertificateNo;

    /**
     * 文化水平(1:文盲;2:小学;3:初中;4:高中;5中专;6:大专;7:本科;8:硕士;9:博士;10:其他)
     */
    @TableField("EDUCATIONAL_LEVEL")
    @ExcelField(title="文化水平(1:文盲;2:小学;3:初中;4:高中;5中专;6:大专;7:本科;8:硕士;9:博士;10:其他)",  align=2 , sort=28, dictType="")
    private Integer educationalLevel;

    /**
     * 户籍类别(1:农业户口；2:非农业户口)
     */
    @TableField("CENSUS_REGISTER_TYPE")
    @ExcelField(title="户籍类别(1:农业户口；2:非农业户口)",  align=2 , sort=29, dictType="")
    private Integer censusRegisterType;

    /**
     * 籍贯
     */
    @TableField("NATIVE_PLACE")
    @ExcelField(title="籍贯",  align=2 , sort=30, dictType="")
    private String nativePlace;

    /**
     * 评残日期
     */
    @TableField("DISABLED_RATING_DATE")
    @ExcelField(title="评残日期",  align=2 , sort=31, dictType="")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date disabledRatingDate;

    /**
     * 领证日期
     */
    @TableField("GET_CERTIFICATE_DATE")
    @ExcelField(title="领证日期",  align=2 , sort=32, dictType="")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date getCertificateDate;

    /**
     * 户籍区域
     */
    @TableField("CENSUS_REGISTER_AREA")
    @ExcelField(title="户籍区域",  align=2 , sort=33, dictType="")
    private String censusRegisterArea;

    /**
     * 户籍地址
     */
    @TableField("CENSUS_REGISTER_ADDR")
    @ExcelField(title="户籍地址",  align=2 , sort=34, dictType="")
    private String censusRegisterAddr;

    /**
     * 婚否(10:未婚;20:已婚;30:丧偶;40:离婚;90:其他)
     */
    @TableField("MARITAL_STATUS")
    @ExcelField(title="婚否(10:未婚;20:已婚;30:丧偶;40:离婚;90:其他)",  align=2 , sort=35, dictType="")
    private Integer maritalStatus;

    /**
     * 现居地址
     */
    @TableField("CURRENT_ADDR")
    @ExcelField(title="现居地址",  align=2 , sort=36, dictType="")
    private String currentAddr;

    /**
     * 信息录入来源(1:省残联接口插入；2:手动新增)
     */
    @TableField("INPUT_SOURCE")
    @ExcelField(title="信息录入来源(1:省残联接口插入；2:手动新增)",  align=2 , sort=37, dictType="")
    private Integer inputSource;

    /**
     * 创建人
     */
    @TableField("CREATER")
    @ExcelField(title="创建人",  align=2 , sort=38, dictType="")
    private String creater;

    /**
     * 创建时间
     */
   /* @TableField("CREATE_TIME")
    @ExcelField(title="创建时间",  align=2 , sort=39, dictType="")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;*/

    /**
     * 修改人
     */
    @TableField("UPDATER")
    @ExcelField(title="修改人",  align=2 , sort=40, dictType="")
    private String updater;

    /**
     * 修改时间
     */
    @TableField("UPDATE_DATE")
    @ExcelField(title="修改时间",  align=2 , sort=41, dictType="")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateDate;

    /**
     * 户籍区域编号(省残联接口返回字段)
     */
    @TableField("CENSUS_REGISTER_CODE")
    @ExcelField(title="户籍区域编号(省残联接口返回字段)",  align=2 , sort=42, dictType="")
    private String censusRegisterCode;

    /**
     * 租户ID
     */
    @TableField("TENANT_ID")
    @ExcelField(title="租户ID",  align=2 , sort=43, dictType="")
    private String tenantId;

    /**
     * 删除状态（0：正常；1：删除）
     */
    @TableField("DEL_STATUS")
    @ExcelField(title="删除状态（0：正常；1：删除）",  align=2 , sort=44, dictType="")
    private Integer delStatus;

    /**
     * 有效期开始
     */
    @TableField("STIME")
    @ExcelField(title="有效期开始",  align=2 , sort=45, dictType="")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date stime;

    /**
     * 有效期结束
     */
    @TableField("ETIME")
    @ExcelField(title="有效期结束",  align=2 , sort=46, dictType="")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date etime;

    /**
     * 更改时间
     */
    @TableField("UTIME")
    @ExcelField(title="更改时间",  align=2 , sort=47, dictType="")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date utime;

    /**
     * //持证有效状态（1持证2到期3迁出4注销5迁入过程中6冻结8已成功迁入其它地）
     */
    @TableField("STATE")
    @ExcelField(title="//持证有效状态（1持证2到期3迁出4注销5迁入过程中6冻结8已成功迁入其它地）",  align=2 , sort=48, dictType="")
    private String state;

    /**
     * 同步标识（1:定时任务）
     */
    @TableField("IS_SYNC")
    @ExcelField(title="同步标识（1:定时任务）",  align=2 , sort=49, dictType="")
    private String isSync;

    /**
     * 修改手机号（备用手机号）
     */
    @TableField("PHONE2")
    @ExcelField(title="修改手机号（备用手机号）",  align=2 , sort=50, dictType="")
    private String phone2;

    /**
     * 户籍所在地 经度
     */
    @TableField("LON")
    @ExcelField(title="户籍所在地 经度",  align=2 , sort=51, dictType="")
    private Double lon;

    /**
     * 户籍所在地 纬度
     */
    @TableField("LAT")
    @ExcelField(title="户籍所在地 纬度",  align=2 , sort=52, dictType="")
    private Double lat;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }


private static ClDisabledInfoDTO clDisabledInfoDTO = new ClDisabledInfoDTO();
    
    public static ClDisabledInfoDTO getInstance() {
        try {
            return (ClDisabledInfoDTO) clDisabledInfoDTO.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return new ClDisabledInfoDTO();
    }

}
